home *** CD-ROM | disk | FTP | other *** search
/ kermit.columbia.edu / kermit.columbia.edu.tar / kermit.columbia.edu / newsgroups / misc.19950726-19950929 / 000291_news@columbia.edu_Mon Sep 4 18:58:25 1995.msg < prev    next >
Internet Message Format  |  1995-12-25  |  5KB

  1. Received: from apakabar.cc.columbia.edu by watsun.cc.columbia.edu with SMTP id AA20608
  2.   (5.65c+CU/IDA-1.4.4/HLK for <kermit.misc@watsun.cc.columbia.edu>); Mon, 4 Sep 1995 16:00:31 -0400
  3. Received: by apakabar.cc.columbia.edu id AA18029
  4.   (5.65c+CU/IDA-1.4.4/HLK for kermit.misc@watsun); Mon, 4 Sep 1995 16:00:30 -0400
  5. Path: news.columbia.edu!sol.ctr.columbia.edu!howland.reston.ans.net!spool.mu.edu!bloom-beacon.mit.edu!news5.ner.bbnplanet.net!news3.near.net!sun3.ipswitch.com!ddl
  6. From: ddl@harvard.edu (Dan Lanciani)
  7. Newsgroups: comp.protocols.kermit.misc
  8. Subject: Re: MS-KERMIT 3.14 hanging on idle TCP/IP connection?
  9. Message-Id: <2979@sun3.IPSWITCH.COM>
  10. Date: 4 Sep 95 18:58:25 GMT
  11. References: <42d2u9$edt@apakabar.cc.columbia.edu> <42dodl$go@apakabar.cc.columbia.edu>
  12. Organization: Internet 
  13. Lines: 69
  14. Apparently-To: kermit.misc@watsun.cc.columbia.edu
  15.  
  16. In article <42dodl$go@apakabar.cc.columbia.edu>, chaiklin@konichiwa.cc.columbia.edu (Seth Chaiklin) writes:
  17. | Joe Doupnik <jrd@cc.usu.edu> wrote:
  18. | >    Did you have a chance to look at the ARP cache on the Linux machine?
  19. | >I've heard rumors (I don't use Linux) that it times out and can yield just
  20. | >the effects noted. You might try pinging MSK from the Linux end as one way
  21. | >of correcting its ARP cache.
  22. | You are definitely on the right track (and thanks for the fast response!).
  23. | I tried an experiment.  I let the MSK machine sit idle while
  24. | connected to the Linux machine, and after 10 minutes (while true;
  25. | do date; arp -a; sleep 60; done), I discovered that the Linux arp
  26. | cache loses the HW address of the ethernet card, at which point,
  27. | of course, the MSK machine appears to be frozen.
  28.  
  29. Note that most implementations intentionally time out ARP entries; this
  30. is a feature.  I doubt that the entry is lost as such, though timeouts
  31. are usually a bit longer.  You may be looking at an ARP bug in Linux
  32. or kermit involving bad behavior when one side already knows the address.
  33. These kinds of bugs come up more often than you might imagine since
  34. the ARP process for mainly-client programs is usually one way and the
  35. reverse process may be only lightly tested.  Keep in mind that the answerer
  36. of an ARP request also retains the address of the caller to avoid sending
  37. an ARP itself.  Starting with both machines ignorant of the hardware
  38. addresses, the process might go like this:
  39.  
  40. kermit -> ARP-REQUEST -> Linux (saves kermit's hardware address)
  41. Linux -> ARP-RESPONSE -> kermit
  42.  
  43. Since this is the most common sequence, kermit probably doesn't have to
  44. answer ARP requests at all most of the time.
  45.  
  46. | I tried pinging the MSK machine from the Linux machine, but it
  47. | does not respond.  However, if I hand-entered the HW address for
  48. | the MSK machine, then deleted this entry from the arp cache, and
  49. | then added it again, I could reestablish input/output being shown
  50. | on the MSK machine, and everything seems to work as it should.
  51.  
  52. You'd need a network trace to be sure, but this suggests that kermit
  53. isn't responding to ARPs in its current state.  (It could also be that
  54. Linux isn't sending them at all, but that would be such a devastating
  55. error that it would have been noticed long ago.  I hope.)  I think there
  56. are at least two additional experiments that might shed light on the situation.
  57. First, while in the bad state, try to ping it from another machine that
  58. has never been involved with the connection at all.  This should tell
  59. you whether kermit is willing to respond to anybody's ARP at this point.
  60. If it doesn't respond then it has somehow been corrupted (or doesn't
  61. respond to ARPs in general).  If it does respond then it may be that kermit
  62. has a problem answering ARPs when it already knows the peer's hardware
  63. address.  If it does not respond, move on to the next test:
  64.  
  65. Start kermit fresh and don't connect to anything (I assume you can do this
  66. and still have the tcp running?).  Now try to ping kermit from a machine
  67. which has no ARP entry for kermit.  If this works and the first test failed
  68. then it is likely the program is becoming corrupted somehow.  If the second
  69. test fails then kermit doesn't respond to ARPs at all (seems unlikely) or
  70. you have some obscure problem with broadcasts and/or frame types that is
  71. blocking ARPs in one direction.  (Don't laugh; I've seen it.)
  72.  
  73. The general idea is that things can work remarkably well with ARPs functioning
  74. in only one direction and it takes something like a short cache timeout to
  75. bring the problem to light.  Consider that one end could be totally incapable
  76. of receiving broadcasts (bad NIC, bad driver, etc.) and it would still appear
  77. to function normally as long as it always ARP'ed first and the peer had a long
  78. timeout.
  79.  
  80.                 Dan Lanciani
  81.                 ddl@harvard.*